맨위로가기

하이퍼 연산

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

하이퍼 연산은 덧셈, 곱셈, 거듭제곱을 일반화한 이항 연산 수열이다. 이 수열은 덧셈 (n=1), 곱셈 (n=2), 거듭제곱 (n=3)으로 시작하며, 밑, 지수, 계수 (또는 등급) 등의 매개변수를 사용한다. 커누스 윗화살표 표기법, 재귀적 정의, 다양한 표기법을 통해 하이퍼 연산을 정의할 수 있으며, 테트레이션, 펜테이션, 헥세이션과 같은 연산을 포함한다. 하이퍼 연산은 1914년 알베르트 베네트에 의해 처음 논의되었으며, 빌헬름 아커만과 루벤 굿스타인에 의해 발전되었다. 또한, 하이퍼 연산의 변형과 이를 이용한 수 체계도 존재한다.

더 읽어볼만한 페이지

  • 산술 - 페아노 공리계
    페아노 공리계는 자연수를 엄밀하게 정의하기 위해 주세페 페아노가 제시한 공리계로, 자연수 집합이 만족해야 할 5가지 성질(0의 존재, 따름수의 존재, 따름수의 0이 아님, 따름수 함수의 단사성, 수학적 귀납법)을 규정하며 현대 수학의 기초를 이룬다.
  • 산술 - 연산 (수학)
    수학에서 연산은 집합의 원소들을 입력받아 새로운 원소를 생성하는 과정으로, 입력값의 수에 따라 n항 연산으로 정의되며, 항수에 따라 영항, 단항, 이항 연산 등으로 분류되고 내부 연산과 외부 연산으로 구분된다.
  • 큰 수 - 나유타
    나유타는 불교 경전에서 큰 수를 비유하는 산스크리트어 유래 수의 단위로, 산학계몽에 처음 등장하여 시대에 따라 크기 정의가 변화했으며 현대에는 특정 수치를 나타내는 단위로도 쓰인다.
  • 큰 수 - 구골플렉스
    구골플렉스는 1 뒤에 구골(10100)개의 0이 붙는 매우 큰 수로, 1940년 밀튼 시로타가 명명했으며, 칼 세이건은 십진법으로 완전히 쓰는 것이 물리적으로 불가능하다고 추정했다.
  • 이항연산 - 뺄셈
    뺄셈은 두 수의 관계를 나타내는 연산으로, 덧셈의 역연산이며, 피감수에서 감수를 빼는 연산으로 차를 구하고, 반교환법칙과 결합 법칙은 성립하지 않으며, 다양한 계산 방법과 함께 여러 분야에서 활용된다.
  • 이항연산 - 나눗셈
    나눗셈은 하나의 수를 다른 수로 나누어 몫과 나머지를 구하는 기본적인 산술 연산이다.
하이퍼 연산
개요
하이퍼 연산 레벨 0부터 4까지
하이퍼 연산 레벨 0부터 4까지
정의하이퍼 연산은 덧셈, 곱셈, 거듭제곱과 같은 연산을 일반화한 것임
표기법하이퍼(a, b, n)
a [n+2] b (크누스 윗화살표 표기법)
a →n b (크누스 윗화살표 표기법)
a bn (콘웨이 체인 화살표 표기법)
An(a, b) (아커만 함수)
형식적 정의
재귀적 정의H(a, b, 0) = a + b
H(a, b, 1) = a * b
H(a, b, n) = a, n > 1인 경우 b번 H(a, H(a, b-1, n), n-1)을 수행
크누스 윗화살표 표기법으로 표현a [n+2] b = a, n > 1인 경우 b번 a [n+1] (a [n+2] (a, b-1))을 수행
예시
하이퍼 연산 0 (덧셈)a + b = b번 a + 1을 수행
하이퍼 연산 1 (곱셈)a * b = b번 a + a를 수행
하이퍼 연산 2 (거듭제곱)a ^ b = b번 a * a를 수행
하이퍼 연산 3 (테트레이션)a ^^ b = b번 a ^ a를 수행
하이퍼 연산 4 (펜테이션)a ^^^ b = b번 a ^^ a를 수행
관련 개념
아커만 함수하이퍼 연산과 밀접하게 관련된 함수
그제고르치크 계층계산 복잡도 이론에서 사용되는 함수의 계층
큰 수하이퍼 연산을 사용하여 매우 큰 수를 표현할 수 있음
주의사항
연산 순서하이퍼 연산은 오른쪽에서 왼쪽으로 계산됨 (거듭제곱과 유사)
일반화
실수, 복소수 확장하이퍼 연산을 실수 또는 복소수로 확장하는 연구가 진행 중임

2. 정의

'''하이퍼 연산 수열'''은 덧셈(n = 1), 곱셈(n = 2), 거듭제곱(n = 3)으로 시작하는, H_n으로 표기되는 이항 연산 수열이다. 하이퍼 연산의 매개변수는 거듭제곱과 유사하게 '''밑'''(''a''), '''지수'''(''b'', 또는 ''하이퍼 지수''), '''계수'''(''n'', 또는 ''등급'')으로 불린다.

일반적으로 하이퍼 연산은 이전 하이퍼 연산의 반복을 거듭하는 것을 의미한다. 덧셈, 곱셈, 거듭제곱의 개념은 모두 하이퍼 연산에 포함된다. 덧셈은 1을 거듭 더하는 것이고, 곱셈은 한 숫자를 거듭 더하는 것이며, 거듭제곱은 한 숫자를 거듭 곱하는 것이다.

거듭제곱 다음 연산은 테트레이션(거듭제곱의 반복)으로, H_4(a, 3) = a[4]3 = a\uparrow\uparrow 3 = \operatorname{tetration}(a, 3) = a^{a^a} 와 같이 정의된다.

크누스 표기법은 음수 인덱스 ≥ −2까지 확장 가능하며, 전체 하이퍼 연산 수열과 일치한다.

:H_n(a, b) = a \uparrow^{n-2}b\text{ for } n \ge 0.

하이퍼 연산은 "다음 함수는 무엇인가?"라는 질문에 대한 답으로, 다음 함수, 덧셈, 곱셈, 거듭제곱 등으로 이어진다.

기본 산술 연산 간의 관계는 다음과 같이 표현되며, 이를 통해 더 높은 연산을 자연스럽게 정의할 수 있다.

:\begin{align}

a + b &= 1 + (a + (b - 1)) \\

a \cdot b &= a + (a \cdot (b - 1)) \\

a^b &= a \cdot \left(a^{(b - 1)}\right) \\

a [4] b &= a^{a [4] (b - 1)}

\end{align}

H_n(a, b)는 "a의 ''b''번째 ''n''-에이션"으로 읽는다. 예를 들어 H_4(7,9)는 "7의 9번째 테트레이션", H_{123}(456,789)는 "456의 789번째 123-에이션"으로 읽는다.

2. 1. 커누스 윗화살표 표기법을 사용한 정의

커누스 윗화살표 표기법을 사용하면, 하이퍼 연산을 다음과 같이 정의할 수 있다.

:

H_n(a, b) = a \uparrow^{n-2} b =

\begin{cases}

b + 1 & \text{if } n = 0 \\

a & \text{if } n = 1, b = 0 \\

0 & \text{if } n = 2, b = 0 \\

1 & \text{if } n \ge 3, b = 0 \\

H_{n-1}(a, H_n(a, b - 1)) & \text{otherwise}

\end{cases}



(otherwise는 위에 주어진 조건들이 성립하지 않을 때를 뜻한다.)

이는 덧셈, 곱셈, 거듭제곱 다음에 무엇인지에 대한 답으로 해석할 수 있다. 참고로 다음의 식들은 하이퍼 연산자들의 관계를 나타내며, 더 높은 연산자들을 정의할 수 있게 한다. 높은 연산자에는 작은 수를 대입해도 매우 큰 숫자가 나온다.

  • a + b = 1 + (a + (b - 1))
  • a \times b = a + (a \times (b - 1))
  • a ^ b = a \times (a ^ {(b - 1)})


더 자세한 내용을 보려면 테트레이션 문서를 참고하라.

2. 2. 재귀적 정의

하이퍼 연산 수열 H_n(a,b) \colon (\mathbb{N}_0)^3 \rightarrow \mathbb{N}_0는 다음과 같이 재귀적으로 정의되는 이항 연산 H_n \colon (\mathbb{N}_0)^2 \rightarrow \mathbb{N}_0수열이다.

:

H_n(a,b) = a[n]b =

\begin{cases}

b + 1 & \text{if } n = 0 \\

a & \text{if } n = 1 \text{ and } b = 0 \\

0 & \text{if } n = 2 \text{ and } b = 0 \\

1 & \text{if } n \ge 3 \text{ and } b = 0 \\

H_{n-1}(a, H_n(a, b - 1)) & \text{otherwise}

\end{cases}



(''n'' = 0인 경우는 단항 연산(다음 함수)으로 축소된다.)

''n'' = 0, 1, 2, 3에 대해 이 정의는 다음 함수, 덧셈, 곱셈, 거듭제곱의 기본 산술 연산을 다음과 같이 재현한다.

:\begin{align}

H_0(a, b) &= 1 + b, \\

H_1(a, b) &= a + b, \\

H_2(a, b) &= a \times b, \\

H_3(a, b) &= a\uparrow{b} = a^{b}.

\end{align}

H_n 연산은 크누스 윗화살표 표기법으로 쓸 수 있다.

:\begin{align}

H_4(a,b) &= a\uparrow\uparrow{b}, \\

H_5(a,b) &= a\uparrow\uparrow\uparrow{b}, \\

\ldots & \\

H_n(a,b) &= a\uparrow^{n-2}b \text{ for } n \ge 3, \\

\ldots & \\

\end{align}

하이퍼 연산은 다음과 같이 반복을 통해 정의할 수도 있다. 모든 정수 x,n,a,b \geq 0에 대해 다음과 같이 정의한다.

:

\begin{array}{lcl}

H_{0}(a,b) & = & b+1 \\

H_{1}(a,0) & = & a \\

H_{2}(a,0) & = & 0 \\

H_{n+3}(a,0) & = & 1 \\

H_{n+1}(a,b+1) & = & H^{b+1}_{n}(a,H_{n+1}(a,0)) \\

H^{x+2}_{n}(a,b) & = & H_{n}(a,H^{x+1}_{n}(a,b))

\end{array}


3. 표기법

하이퍼 연산은 덧셈, 곱셈, 거듭제곱 등의 기본적인 연산을 확장한 것으로, 이를 나타내는 다양한 표기법이 존재한다.

{| class="wikitable"

|-

! 이름

! 표기법

! 비고

|-

| '''기본 화살표 표기법'''

| a \uparrow^{n-2} b = H_n(a, b)

| 커누스가 최초로 사용[10]

|-

| ''굿스틴 표기법''

| G(n, a, b)

| 굿스틴(Goodstein)이 최초로 사용[12]

|-

| ''초기 아커만 함수''

| A(a, b, n-1) = H_n(a, b)

| 하이퍼 연산과는 약간 다르다.

|-

| ''현대 아커만 함수''

| A(n, b - 3) + 3 = H_n(2, b)

| 밑이 2일 때의 하이퍼 연산과 동일하다.

|-

| ''냄비어 표기법''

| a \otimes^n b

| 냄비어(Nambiar)가 최초로 사용[11]

|-

| 상자 표기법

| a {\,\begin{array}

\hline{\!n\!}\\\hline\end{array}\,} b

| Rubtsov과 Romerio가 최초로 사용[14]

|-

| ''어깨글자 표기법''

| a {}^{(n)} b

| 로버트 무나포(Robert Munafo)가 최초로 사용[13]

|-

| ''아래글자 표기법''

| a {}_{(n)} b

| 작은 하이퍼 연산을 위해 무나포가 최초로 사용[13]

|-

| ''ASCII 표기법''

| a [n] b

| 많은 온라인 포럼에서 사용; 상자 표기법을 기본으로 함.

|}

하이퍼 연산은 덧셈, 곱셈, 거듭제곱을 확장한 연산으로, 함수 형식으로 hyper''n''과 같이 나타낼 수 있다. hyper1은 덧셈, hyper2는 곱셈, hyper3은 거듭제곱이며, hyper4는 테트레이션, hyper5는 펜테이션, hyper6은 헥세이션 등으로 불린다.

''n'' = 0~4일 때의 예시는 다음과 같다.

:\begin{align} \operatorname{hyper0} \left(a, b\right) = \operatorname{hyper}\left(a, 0, b\right) = a ^ {\left(0\right)} b =& b+1 \\

\operatorname{hyper1} \left(a, b\right) = \operatorname{hyper}\left(a, 1, b\right) = a ^ {\left(1\right)} b =& a+b \\

\operatorname{hyper2} \left(a, b\right) = \operatorname{hyper}\left(a, 2, b\right) = a ^ {\left(2\right)} b =& ab = \underbrace{ a+{a+{\cdots\cdots\cdots\cdots\cdots\cdots+{a+{a}}}} }_{\text{길이}b} = \int_{0}^{b}a\,db \\

\operatorname{hyper3} \left(a, b\right) = \operatorname{hyper}\left(a, 3, b\right) = a ^ {\left(3\right)} b =& a^b = a \uparrow b = \underbrace{ a\times{a\times{\cdots\cdots\cdots\cdots\cdots\cdots\times{a\times{a}}}} }_{\text{길이}b} \\

\operatorname{hyper4} \left(a, b\right) = \operatorname{hyper}\left(a, 4, b\right) = a ^ {\left(4\right)} b =& \,^b a = a \uparrow

\uparrow b = \underbrace{ a^{a^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{\cdot^{a^{a}}}}}}}}}}}}}}}}}}}}} }_{\text{높이}b} \end{align}

''n'' > 4인 경우에는 다음과 같이 정의된다.

:\operatorname{hyper}n \left(a, b\right) = \operatorname{hyper}\left(a, n, b\right) = a ^ {\left(n\right)} b = \underbrace{ a ^{\left(n-1\right)} a ^{\left(n-1\right)} \cdots ^{\left(n-1\right)} a }_{b \text{ copies of } a}

''n'' ≥ 3 이상에서는 결합 법칙이 성립하지 않으므로 오른쪽부터 계산하는 것이 원칙이다. 아래첨자 표기법을 사용하면 왼쪽부터 계산하는 연산을 나타낼 수 있지만, 이는 본질적으로 새로운 연산은 아니다.

3. 1. 주요 표기법

다음은 하이퍼 연산을 표기하는 여러 가지 방법이다.

{| class="wikitable"

|-

! 이름

! 표기법

! 비고

|-

| '''기본 화살표 표기법'''

| a \uparrow^{n-2} b = H_n(a, b)

| 커누스가 최초로 사용[10]

|-

| ''굿스틴 표기법''

| G(n, a, b)

| 굿스틴(Goodstein)이 최초로 사용[12]

|-

| 상자 표기법

| a {\,\begin{array}

\hline{\!n\!}\\\hline\end{array}\,} b

| Rubtsov과 Romerio가 최초로 사용[14]

|-

| ''어깨글자 표기법''

| a {}^{(n)} b

| 로버트 무나포(Robert Munafo)가 최초로 사용[13]

|-

| ''아래글자 표기법''

| a {}_{(n)} b

| 작은 하이퍼 연산을 위해 무나포가 최초로 사용[13]

|-

| ''ASCII 표기법''

| a [n] b

| 많은 온라인 포럼에서 사용; 상자 표기법을 기본으로 함.

|}

3. 2. 다른 표기법과의 관계

''n'' ≥ 3일 때, 크누스 윗화살표 표기법 및 콘웨이 연쇄 화살표 표기법과의 관계는 다음과 같다.[5]

:\operatorname{hyper}(a, n, b) = a ^ {(n)} b = a \uparrow^{n-2} b = a \rightarrow b \rightarrow (n -2) \quad \mbox{ when } n \ge 3

''n'' ≥ 1일 때, 바우어의 확장 연산자(Jonathan Bowers' Extended Operator)와의 관계는 다음과 같다.[5]

:\operatorname{hyper}(a, n, b) = a ^ {(n)} b = a \langle n \rangle b \quad \mbox{ when } n \ge 1

4. 하이퍼 연산 목록

n연산정의이름영역
0b + 11 + \underbrace{1 + 1 + 1 + \cdots + 1}_{b}hyper0, 증분(增分), 다음수임의의 b
1a + ba + \underbrace{1 + 1 + 1 + \cdots + 1}_{b}hyper1, 덧셈임의의 a, b
2ab\underbrace{a + a + a + \cdots + a}_{b}hyper2, 곱셈임의의 a, b
3a \uparrow b = a^b\underbrace{a \cdot a \cdot a \cdot a \cdot \ldots \cdot a}_{b}hyper3, 거듭제곱a > 0, b 실수, 또는 a가 0이 아닌 실수, b가 정수
4a \uparrow\uparrow b = {}^{b}a\underbrace{a \uparrow a \uparrow a \uparrow \cdots \uparrow a}_{b}hyper4, 테트레이션a > 0, 정수 b ≥ −1
5a \uparrow\uparrow\uparrow b = a \uparrow^3 b\underbrace{a \uparrow\uparrow a \uparrow\uparrow \cdots \uparrow\uparrow a}_{b}hyper5, 펜테이션ab는 정수, a > 0, b ≥ 0
6a \uparrow\uparrow\uparrow\uparrow b = a \uparrow^4 b\underbrace{a \uparrow^3 a \uparrow^3 \cdots \uparrow^3 a}_{b}hyper6, 헥세이션ab는 정수, a > 0, b ≥ 0


5. 계산

하이퍼 연산의 기본 정의는 다음 축약 규칙을 따른다.[1]

규칙
(r1)H(0,a,b) \rightarrow S(b)
(r2)H(S(0),a,0) \rightarrow a
(r3)H(S(S(0)),a,0) \rightarrow 0
(r4)H(S(S(S(n))),a,0) \rightarrow S(0)
(r5)H(S(n),a,S(b)) \rightarrow H(n,a,H(S(n),a,b))



H_{n}(a, b)를 계산하기 위해, 초기에는 \langle n,a,b \rangle 요소를 포함하는 스택을 사용한다. 그런 다음, 더 이상 불가능할 때까지 세 개의 요소를 꺼내고 다음 규칙에 따라 대체한다.[1]

규칙스택 변화
(r1)0, a, b → (b+1)
(r2)1, a, 0 → a
(r3)2, a, 0 → 0
(r4)(n+3), a, 0 → 1
(r5)(n+1), a, (b+1) → n, a, (n+1), a, b



하이퍼 연산은 이처럼 스택을 활용하여 계산할 수 있으며, 구체적인 예시는 #TRS 기반 계산에서 확인할 수 있다.

하이퍼 연산의 표기법은 다음과 같다.

이름H_n(a, b)와 동일한 표기법설명
크누스 윗 화살표 표기법a \uparrow^{n-2} b도널드 E. 커누스가 사용했으며(n ≥ 3) 여러 참고 서적에서 찾아볼 수 있다.
힐베르트 표기법\phi_n(a, b)다비트 힐베르트가 사용했다.
구드슈타인 표기법G(n, a, b)루벤 구드슈타인이 사용했다.
원래 아커만 함수빌헬름 아커만이 사용했다. (n ≥ 1)
아커만-페터 함수A(n, b - 3) + 3 \ \text{for } a = 2이는 밑이 2인 하이퍼 연산에 해당한다(a = 2).
남비아르 표기법a \otimes^{n-1} b남비아르가 사용했다 (n ≥ 1).
위첨자 표기법a {}^{(n)} b로버트 무나포가 사용했다.
아래첨자 표기법 (낮은 하이퍼 연산의 경우)a {}_{(n)} b로버트 무나포가 낮은 하이퍼 연산에 사용했다.
연산자 표기법 ("확장 연산"의 경우)a O_{n-1} b존 도너와 알프레드 타르스키가 낮은 하이퍼 연산에 사용했다. (n ≥ 1).
대괄호 표기법a[n]b많은 온라인 포럼에서 사용되며, ASCII에 편리하다.
콘웨이 연쇄 화살표 표기법a \to b \to (n-2) 존 호턴 콘웨이가 사용했다 (n ≥ 3).


5. 1. TRS 기반 계산

Term Rewriting System|텀 재작성 시스템영어(TRS)을 기반으로 하이퍼 연산을 계산하는 방법은 스택을 이용하여 구현할 수 있다. 하이퍼 연산 수열의 정의는 항 재작성 시스템(TRS)으로 변환될 수 있으며, 이는 축약 규칙을 통해 표현된다.[1]

H_{n}(a, b)를 계산하기 위해 초기 스택은 \langle n,a,b \rangle 요소를 포함한다. 이후 스택에서 세 개의 요소를 꺼내 다음 규칙에 따라 대체한다.[1]

규칙스택 변화
(r1)0, a, b → (b+1)
(r2)1, a, 0 → a
(r3)2, a, 0 → 0
(r4)(n+3), a, 0 → 1
(r5)(n+1), a, (b+1) → n, a, (n+1), a, b



간단히 설명하면, \langle n,a,b \rangle에서 시작하여 스택 길이가 1이 될 때까지 3개의 요소를 꺼내고 규칙 r1, r2, r3, r4, r5에 따라 1개 또는 5개의 요소를 집어넣는 과정을 반복한다.
예시: H_2(2,2) \rightarrow_{*} 4 계산[1][2]

축약 과정은 다음과 같다.

\underline{H(S(S(0)),S(S(0)),S(S(0)))}
\rightarrow_{r5} H(S(0),S(S(0)),\underline{H(S(S(0)),S(S(0)),S(0))})
\rightarrow_{r5} H(S(0),S(S(0)),H(S(0),S(S(0)),\underline{H(S(S(0)),S(S(0)),0)}))
\rightarrow_{r3} H(S(0),S(S(0)),\underline{H(S(0),S(S(0)),0)})
\rightarrow_{r2} \underline{H(S(0),S(S(0)),S(S(0)))}
\rightarrow_{r5} H(0,S(S(0)),\underline{H(S(0),S(S(0)),S(0))})
\rightarrow_{r5} H(0,S(S(0)),H(0,S(S(0)),\underline{H(S(0),S(S(0)),0)}))
\rightarrow_{r2} H(0,S(S(0)),\underline{H(0,S(S(0)),S(S(0)))})
\rightarrow_{r1} \underline{H(0,S(S(0)),S(S(S(0))))}
\rightarrow_{r1} S(S(S(S(0))))



스택을 사용한 구현에서 입력 \langle 2,2,2 \rangle에 대한 스택 구성과 해당 방정식은 다음과 같다.

스택 구성방정식
\underline{2,2,2}H_2(2,2)
\rightarrow_{r5} 1,2,\underline{2,2,1}= H_1(2,H_2(2,1))
\rightarrow_{r5} 1,2,1,2,\underline{2,2,0}= H_1(2,H_1(2,H_2(2,0)))
\rightarrow_{r3} 1,2,\underline{1,2,0}= H_1(2,H_1(2,0))
\rightarrow_{r2} \underline{1,2,2}= H_1(2,2)
\rightarrow_{r5} 0,2,\underline{1,2,1}= H_0(2,H_1(2,1))
\rightarrow_{r5} 0,2,0,2,\underline{1,2,0}= H_0(2,H_0(2,H_1(2,0)))
\rightarrow_{r2} 0,2,\underline{0,2,2}= H_0(2,H_0(2,2))
\rightarrow_{r1} \underline{0,2,3}= H_0(2,3)
\rightarrow_{r1} 4= 4



반복을 사용한 정의는 다른 축약 규칙을 사용하며, 스택에는 네 개의 요소 \langle 1,n,a,b \rangle가 초기값으로 들어간다. 계산 과정에서 네 개의 요소를 꺼내 규칙에 따라 1개 또는 7개의 요소로 대체한다.[1]

규칙 {r6 - r10, r11}에 따른 H_{n}(a,b) 계산은 재귀적이다. 반복이 실행되는 순서 때문에 전체 시퀀스가 펼쳐진 후에야 첫 번째 H가 사라진다.[3] 반면, 규칙 {r6 - r10, r12}에 따른 계산은 더 효율적이며, 재귀 깊이는 초연산 순서와 일치한다.[4] 어느 쪽으로 반복하든 동일한 규칙을 포함하므로 축약 단계 수는 동일하다. 축약 규칙이 적용되는 순서만 영향을 받는다.

6. 특수한 경우

''Hn''(0, ''b'')의 값은 다음과 같다.[6][7]


  • n = 0일 때, ''b'' + 1
  • n = 1일 때, ''b''
  • n = 2일 때, 0
  • n = 3이고 ''b'' = 0일 때, 1
  • n = 3이고 ''b'' > 0일 때, 0
  • n > 3이고 ''b''가 짝수일 때 (0 포함), 1
  • n > 3이고 ''b''가 홀수일 때, 0


''Hn''(1, ''b'')의 값은 다음과 같다.

  • n = 2일 때, ''b''
  • n ≥ 3일 때, 1


''Hn''(''a'', 0)의 값은 다음과 같다.

  • n = 2일 때, 0
  • n = 0 또는 n ≥ 3일 때, 1
  • n = 1일 때, ''a''


''Hn''(''a'', 1)의 값은 다음과 같다.

  • n ≥ 2일 때, ''a''


''Hn''(''a'', ''a'')의 값은 다음과 같다.

  • n ≥ 1일 때, ''Hn+1''(''a'', 2)


''Hn''(''a'', −1)의 값은 다음과 같다.[5]

  • n = 0 또는 n ≥ 4일 때, 0
  • n = 1일 때, ''a'' − 1
  • n = 2일 때, −''a''
  • n = 3일 때, (분수형태)


''Hn''(2, 2)의 값은 다음과 같다.

  • n = 0일 때, 3
  • n ≥ 1일 때, 4 (재귀적으로 쉽게 증명 가능)

7. 역사

하이퍼 연산은 1914년 알베르트 베네트가 처음 논의했는데, 그는 "가환 하이퍼 연산" 이론을 개발했다.[9] 1928년 빌헬름 아커만은 하이퍼 연산 수열과 어느 정도 연관성이 있는 함수 \phi(a, b, n)을 정의했다.[9]

1947년 루벤 굿스타인[12]은 현재 사용되는 하이퍼 연산 수열을 정의하고, 커누스 윗화살표 표기법으로는 a \uparrow^{n-2}b와 같은 G(n,a,b) 기호를 사용했다. 또한, 굿스타인은 테트레이션, 펜테이션, 헥세이션 등 거듭제곱 이상의 연산에 명칭을 부여했다.

굿스타인의 정의는 원래 아커만 함수와 몇 가지 차이점이 있다. 원래의 삼항 아커만 함수 \phi는 굿스타인 버전과 동일한 재귀 규칙을 사용하지만, 두 가지 면에서 다르다. 첫째, \phi(a, b, n)은 승계 함수가 아닌 덧셈(''n'' = 0)에서 시작하는 연산 시퀀스를 정의하고, 이후 곱셈(''n'' = 1), 지수 연산(''n'' = 2) 등을 정의한다. 둘째, \phi에 대한 초기 조건은 \phi(a, b, 3) = G(4,a,b+1) = a [4] (b + 1)의 결과를 가져오므로 지수 연산을 넘어서는 하이퍼 연산과 차이가 있다.

8. 변형

하이퍼 연산에는 다양한 변형이 존재한다. 그중 하나는 왼쪽에서 오른쪽으로 연산하는 방식으로, 다음과 같이 정의된다. (° 또는 아래 첨자 사용):

:a_{(n+1)}b = \left(a_{(n + 1)}(b - 1)\right)_{(n)} a

여기서

:\begin{align}

a_{(1)} b &= a + b \\

a_{(2)} 0 &= 0 \\

a_{(n)} 1 &= a & \text{for } n>2 \\

\end{align}

이것은 도너(Doner)와 타르스키(Tarski)에 의해 서수로 확장되었다.[8] ''a'' ≥ 2이고 ''b'' ≥ 1인 경우,

: a O_n b = a_{(n + 1)} b

가 성립한다. 그러나 이 연산은 하이퍼 연산에서 전통적으로 예상되는 "지수탑"을 형성하지 못하고 붕괴된다.[8] 예를 들어,

:\alpha_{(4)}(1 + \beta) = \alpha^{\left(\alpha^\beta\right)}.

이다. 만약 α ≥ 2이고 γ ≥ 2이면,[Corollary 33(i)][8]

:\alpha_{(1 + 2\gamma + 1)}\beta \leq \alpha_{(1 + 2\gamma)}(1 + 3\alpha\beta).

이다.

''n''에 따른 연산과 비고
n연산비고
0F_0(a, b) = a + 1증가, 후속자, 제로화
1F_1(a, b) = a + b
2F_2(a, b) = a\cdot b
3F_3(a, b) = a^b
4F_4(a, b) = a^{\left(a^{(b-1)}\right)}테트레이션과 혼동하지 않도록 주의.
5F_5(a, b) = \left(x \mapsto x^{x^{(a-1)}}\right)^{b-1}(a)펜테이션과 혼동하지 않도록 주의.
테트레이션과 유사.


8. 1. ''a''에서 시작하는 변형

가환 초연산은 1914년 앨버트 베넷에 의해 처음으로 언급되었으며,[1] 이는 초연산 수열에 대한 가장 초기의 언급일 가능성이 높다. 가환 초연산은 다음과 같은 재귀 규칙으로 정의된다.

:F_{n+1}(a, b) = \exp(F_n(\ln(a), \ln(b)))

이는 ''a''와 ''b''에 대해 대칭이며, 모든 초연산이 가환적임을 의미한다. 이 수열은 거듭제곱을 포함하지 않으므로 초연산 계층을 형성하지 않는다.

n연산비고
0F_0(a, b) = \ln\left(e^a + e^b\right)스무스 맥시멈
1F_1(a, b) = a + b
2F_2(a, b) = a\cdot b = e^{\ln(a) + \ln(b)}이는 로그의 성질에 기인한다.
3F_3(a, b) = a^{\ln(b)} = e^{\ln(a)\ln(b)}유한체에서, 이는 디피-헬만 키 교환 연산이다.
4F_4(a, b) = e^{e^{\ln(\ln(a))\ln(\ln(b))}}테트레이션과 혼동하지 않도록 주의.


8. 2. 아래첨자 하이퍼 연산자

연산 순서를 왼쪽부터로 하는 아래첨자 하이퍼 연산자를 정의할 수 있다. a(n+1)b = (a(n + 1)(b - 1))(n) a로 정의된다. 여기서,

  • a(1) b = a + b
  • a(2) 0 = 0
  • n>2일 때, a(n) 1 = a


이다.

도너(Doner)와 타르스키(Tarski)는 이를 서수로 확장했다.[8] a ≥ 2이고 b ≥ 1인 경우, a On b = a(n + 1) b가 성립한다. 그러나 이 연산자는 하이퍼 연산자에서 전통적으로 예상되는 "지수탑"을 형성하지 못해 일종의 붕괴를 겪는다.[8]

예를 들어,

:\alpha_{(4)}(1 + \beta) = \alpha^{\left(\alpha^\beta\right)}.

이다.

만약 α ≥ 2이고 γ ≥ 2이면,[Corollary 33(i)][8]

:\alpha_{(1 + 2\gamma + 1)}\beta \leq \alpha_{(1 + 2\gamma)}(1 + 3\alpha\beta).

이다.

이처럼 아래첨자 하이퍼 연산자는 기존 하이퍼 연산자를 사용하여 표현 가능하므로, 활용도가 높지 않다.

8. 3. 가환 하이퍼 연산

1914년 알베르트 베넷은 가환 하이퍼 연산을 제시했다. 이는 하이퍼 연산 수열에 대한 초기 언급일 가능성이 높다. 가환 하이퍼 연산은 다음과 같은 재귀 규칙으로 정의된다.

:F_{n+1}(a, b) = \exp(F_n(\ln(a), \ln(b)))

이는 ''a''와 ''b''에 대해 대칭이며, 모든 하이퍼 연산이 가환적임을 의미한다. 이 수열은 거듭제곱을 포함하지 않으므로 하이퍼 연산 계층을 형성하지 않는다.

n연산비고
0F_0(a, b) = \ln\left(e^a + e^b\right)스무스 맥시멈
1F_1(a, b) = a + b
2F_2(a, b) = a\cdot b = e^{\ln(a) + \ln(b)}이는 로그의 성질에 기인한다.
3F_3(a, b) = a^{\ln(b)} = e^{\ln(a)\ln(b)}유한체에서, 이는 디피-헬만 키 교환 연산이다.
4F_4(a, b) = e^{e^{\ln(\ln(a))\ln(\ln(b))}}테트레이션과 혼동하지 않도록 주의.


9. 수 체계

R. L. 굿스타인은 하이퍼 연산 수열을 기반으로 음이 아닌 정수를 표현하는 수 체계를 제시했다.[1] 이 수 체계에서 정수 ''n''의 ''완전한 유전적 표현''은 레벨 ''k''와 밑 ''b''에서 처음 ''k''개의 하이퍼 연산자와 숫자 0, 1, ..., ''b'' − 1, 그리고 밑 ''b''만을 사용하여 표현된다.


  • 0 ≤ ''n'' ≤ ''b'' − 1인 경우, ''n''은 해당 숫자로 표현된다.
  • ''n'' > ''b'' − 1인 경우, ''n''은 먼저 다음과 같은 형태로 표현된다.

:''b'' [''k''] ''x''''k'' [''k'' − 1] ''x''''k'' − 1 [''k'' - 2] ... [2] ''x''2 [1] ''x''1

:여기서 ''x''''k'', ..., ''x''1은 다음 조건을 만족하는 가장 큰 정수이다.

:''b'' [''k''] ''x''''k'' ≤ ''n''

:''b'' [''k''] ''x''''k'' [''k'' − 1] ''x''''k'' − 1 ≤ ''n''

:...

:''b'' [''k''] ''x''''k'' [''k'' − 1] ''x''''k'' − 1 [''k'' - 2] ... [2] ''x''2 [1] ''x''1 ≤ ''n''

:''b'' − 1을 초과하는 모든 ''x''''i''는 같은 방식으로 다시 표현되며, 숫자 0, 1, ..., ''b'' − 1과 밑 ''b''만 남을 때까지 반복된다.

상위 레벨 연산자에 더 높은 우선 순위를 부여하여 불필요한 괄호를 피한다.

  • 레벨-1 표현: b [1] X 형식 (''X''도 이 형식)
  • 레벨-2 표현: b [2] X [1] Y 형식 (''X'', ''Y''도 이 형식)
  • 레벨-3 표현: b [3] X [2] Y [1] Z 형식 (''X'', ''Y'', ''Z''도 이 형식)
  • 레벨-4 표현: b [4] X [3] Y [2] Z [1] W 형식 (''X'', ''Y'', ''Z'', ''W''도 이 형식)


밑-''b'' ''유전적'' 표현에서 밑 자체는 집합 {0, 1, ..., ''b'' − 1}의 "숫자"와 표현에 모두 나타난다. 일반적인 밑-2 표기법에서 6 = (110)2 이지만, 레벨-3 밑-2 유전적 표현은 6 = 2 [3] (2 [3] 1 [2] 1 [1] 0) [2] 1 [1] (2 [3] 1 [2] 1 [1] 0)이다. 유전적 표현은 [1] 0, [2] 1, [3] 1, [4] 1 등을 생략하여 축약할 수 있다. (예: 6 = 2 [3] 2 [1] 2)

266의 밑-2 표현은 다음과 같다.

  • 레벨 1: 266 = 2 [1] 2 [1] 2 [1] ... [1] 2 (133개의 2)
  • 레벨 2: 266 = 2 [2] (2 [2] (2 [2] (2 [2] 2 [2] 2 [2] 2 [2] 2 [1] 1)) [1] 1)
  • 레벨 3: 266 = 2 [3] 2 [3] (2 [1] 1) [1] 2 [3] (2 [1] 1) [1] 2
  • 레벨 4: 266 = 2 [4] (2 [1] 1) [3] 2 [1] 2 [4] 2 [2] 2 [1] 2
  • 레벨 5: 266 = 2 [5] 2 [4] 2 [1] 2 [5] 2 [2] 2 [1] 2

참조

[1] 문서
[2] 문서
[3] 간행물
[4] 문서
[5] 문서
[6] 문서
[7] 문서
[8] 문서
[9] 저널 Zum Hilbertschen Aufbau der reellen Zahlen https://archive.org/[...]
[10] 저널 Mathematics and Computer Science: Coping with Finiteness http://www.sciencema[...] 2009-04-21
[11] 저널 Ackermann Functions and Transfinite Ordinals http://www.sciencema[...] 2009-04-21
[12] 저널 Transfinite Ordinals in Recursive Number Theory http://www.jstor.org[...] 2009-04-17
[13] 웹인용 Inventing New Operators and Functions http://www.mrob.com/[...] 1999-11
[14] 웹인용 Ackermann's Function and New Arithmetical Operation http://forum.wolfram[...] 2005-12



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com